package com.berchen.日期;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateFormatThreadLocal {

    // 将SimpleDateFormat用锁给锁上，解决线程安全问题
    // 这里是一个内部类。内部类对SimpleDateFormat进行了创建并且定义了日期的格式，这里是用的ThreadLocal是线程本地变量，可以保证SimpleDateFormat是线程安全的
    // ThreadLocal 的get方法就会返回initialValue的返回值。
    private static final ThreadLocal<DateFormat> df=new ThreadLocal<DateFormat>(){

        @Override
        protected DateFormat initialValue(){

            return new SimpleDateFormat("yyyy-MM-dd");
        }
    };

    public static Date convert(String date) throws ParseException {

        return df.get().parse(date);
    }
}
